package main

import (
	"github.com/gin-gonic/gin"
	"github.com/spf13/viper"
	"go.uber.org/zap"
	"mon-go-web/internal/database"
	"mon-go-web/internal/routes"
	"mon-go-web/pkg/logger"
)

func main() {
	// 初始化 Viper 配置
	viper.SetConfigName("config")
	viper.SetConfigType("yaml")
	viper.AddConfigPath("./config")
	if err := viper.ReadInConfig(); err != nil {
		panic("Failed to read config: " + err.Error())
	}

	// 初始化日志
	logger.InitLogger()

	// 初始化数据库
	database.InitDB()

	// 创建 Gin 实例
	r := gin.Default()

	// 设置路由
	routes.SetupRoutes(r)

	// 启动服务
	port := viper.GetString("server.port")
	logger.Logger.Info("Server starting", zap.String("port", port))
	if err := r.Run(":" + port); err != nil {
		logger.Logger.Error("Server failed to start", zap.Error(err))
	}
}
